﻿using Authentication.Model.Model;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace Authentication.Model.Interface
{
    public interface IApplicationProvider
    {
        /// <summary>
        /// Retrive list application on SYSTEM
        /// </summary>
        /// <param name="name">Applicatin name to search</param>
        /// <returns></returns>
        IEnumerable<Application> RetrieveApplications(string name = null);

        /// <summary>
        /// Get application by key and name
        /// </summary>
        /// <param name="applicationKey"></param>
        /// <returns></returns>
        Application RetrieveApplication(string applicationKey);

        /// <summary>
        /// get application by key
        /// </summary>
        /// <param name="applicationKey"></param>
        /// <returns></returns>
        Application RetrieveApplication(Guid applicationKey);
    }
}
